package abd.pr1.Interface;

import java.awt.BorderLayout;
import java.awt.event.ActionListener;
import java.util.List;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;

import abd.pr1.Models.Episodio;
import abd.pr1.Models.Serie;
import abd.pr1.Models.EpisodiosModel;

public class MisSeriesPanel extends JPanel {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private JComboBox<Serie> serieCombo;
	private JTable tablaSeries;
	private JButton info;
	private JButton visto;
	public MisSeriesPanel(){
		 super();
		 this.build();
		
	}

	private void build() {
		// TODO Auto-generated method stub
		this.setLayout(new BorderLayout());
		
		JPanel seleccionarContainer = new JPanel(new BorderLayout());
		JLabel serie = new JLabel("Serie");
		 serieCombo = new JComboBox<Serie>();
		 serieCombo.setActionCommand("serie_combo");
		
		seleccionarContainer.add(serie,BorderLayout.WEST);
		seleccionarContainer.add(serieCombo,BorderLayout.CENTER);
		
		this.add(seleccionarContainer,BorderLayout.NORTH);
		
		tablaSeries = new JTable();
		
		this.add(new JScrollPane(tablaSeries), BorderLayout.CENTER);
		
		JPanel contenedorBotones = new JPanel();
		
		info= new JButton("Informacion");
		info.setActionCommand("informacion_episodio");
		 
		visto= new JButton("Marcar como visto");
		visto.setActionCommand("marcar_como_visto");
		 
		contenedorBotones.add(info);
		contenedorBotones.add(visto);
		this.add(contenedorBotones,BorderLayout.SOUTH);
		
	}
	
	public void setSerieCombo(List<Serie> series){
		
		this.serieCombo.removeAllItems();
		
		for(int i=0;i<series.size();i++){
			this.serieCombo.addItem(series.get(i));
		}
	}
	public void setEpisodioTable(List<Episodio> episodios){
		this.tablaSeries.setModel(new EpisodiosModel(episodios));
	}
	public Serie getSerieCombo(){
		return (Serie) this.serieCombo.getSelectedItem();
	}
	
	public Episodio getEpisodioSelected(){
		if(tablaSeries.getSelectedRow()>=0){
			return ((EpisodiosModel)this.tablaSeries.getModel()).getEpisodioAt(tablaSeries.getSelectedRow());
		}
		return null;
	}
	
	public void addListener(ActionListener a){
		info.addActionListener(a);
		serieCombo.addActionListener(a);
		visto.addActionListener(a);
	}
}
